package com.cgwx.tmservice.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cgwx.tmservice.entity.tm.TmFrameConfig;
import com.cgwx.tmservice.mapper.TmFrameConfigMapper;
import com.cgwx.tmservice.service.TmFrameConfigService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 遥测帧配置表 服务实现类
 * </p>
 *
 * @author GaoWei
 * @since 2023-08-05
 */
@Service
public class TmFrameConfigServiceImpl extends ServiceImpl<TmFrameConfigMapper, TmFrameConfig> implements TmFrameConfigService {

//    更新遥测帧表配置
    @Override
    public void updateTmFrameConfig(MultipartFile file) {
//        获取文件名称
        String uploadFileName = file.getOriginalFilename();
//        从文件名称中提取关键字，复波道_帧编号_帧类型码
        String uploadFileNameSubString = uploadFileName.substring(uploadFileName.indexOf("_") - 1);
        String tmframe_identifiers = uploadFileNameSubString.substring(0, uploadFileNameSubString.indexOf("."));

//        根据文件名检查是否存在同名遥测帧配置
        QueryWrapper<TmFrameConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("tmframe_name",uploadFileName);
//        查询出的tmFrame，可能为空
        TmFrameConfig queryTmFrameConfig = baseMapper.selectOne(queryWrapper);

        if(queryTmFrameConfig != null){
//            如果有，更新TmFrame表中的配置
            queryTmFrameConfig.setTmframeName(uploadFileName);
            queryTmFrameConfig.setTmframeIdentifiers(tmframe_identifiers);
//            更新TmFrame表中的配置
            baseMapper.updateById(queryTmFrameConfig);
        }else{
//            如果没有，添加TmFrame表中的配置
            TmFrameConfig insertTmFrameConfig = new TmFrameConfig();
            insertTmFrameConfig.setTmframeName(uploadFileName);
            insertTmFrameConfig.setTmframeIdentifiers(tmframe_identifiers);
//            更新TmFrame表中的配置
            baseMapper.insert(insertTmFrameConfig);
        }
    }
}
